<?php

namespace app\admin;

/**
 * 查询类
 */
class Query
{

    /**
     * 成员查询
     * @param $obj 模型对象
     */
    public static function queryAdmin($obj)
    {
        $admin_id = input('admin_id', 0);
        if ($admin_id) {
            $obj = $obj->where('admin_id', $admin_id);
        }
        return $obj;
    }

    /**
     * 性别查询
     * @param $obj 模型对象
     */
    public static function queryGender($obj)
    {
        $sex = input('gender', -1);
        if ($sex >= 0) {
            $obj = $obj->where('gender', $sex);
        }
        return $obj;
    }

    /**
     * ID查询
     * @param $obj 模型对象
     * @param $id 数据ID
     */
    public static function queryId($obj, $id)
    {
        return $obj->where('id', $id);
    }

    /**
     * 手机查询
     * @param $obj 模型对象
     * @param $keyword 关键字
     */
    public static function queryPhone($obj, $keyword)
    {
        return $obj->where('phone', 'like', '%' . $keyword . '%');
    }

    /**
     * 昵称查询
     * @param $obj 模型对象
     * @param $keyword 关键字
     */
    public static function queryNickname($obj, $keyword)
    {
        return $obj->where('nickname', 'like', '%' . $keyword . '%');
    }

    /**
     * 备注查询
     * @param $obj 模型对象
     * @param $keyword 关键字
     */
    public static function queryRemark($obj, $keyword)
    {
        return $obj->where('remark', 'like', '%' . $keyword . '%');
    }

    /**
     * 公司查询
     * @param $obj 模型对象
     * @param $keyword 关键字
     */
    public static function queryCompany($obj, $keyword)
    {
        return $obj->where('company', 'like', '%' . $keyword . '%');
    }

    /**
     * JSON字段查询
     * @param $obj 模型对象
     * @param $keyword 关键字
     */
    public static function queryJson($obj, $keyword)
    {
        return $obj->where('json', 'like', '%' . $keyword . '%');
    }

    /**
     * 日期查询
     * @param $obj 模型对象
     * @param $start_date 开始日期
     * @param $end_date 结束日期
     */
    public static function queryDate($obj, $start_date, $end_date)
    {
        if ($start_date && $end_date) {
            $obj = $obj->where('create_time', 'between', [strtotime($start_date . ' 00:00:00'), strtotime($end_date . ' 23:59:59')]);
        } else {
            if ($start_date) {
                $obj = $obj->where('create_time', '>=', strtotime($start_date . ' 00:00:00'));
            }
            if ($end_date) {
                $obj = $obj->where('create_time', '<=', strtotime($end_date . ' 23:59:59'));
            }
        }
        return $obj;
    }
}
